Ubuntu下的CuteCom串口详细调试教程 您所在的位置:网站首页 ubuntu ttyusb0 状态 Ubuntu下的CuteCom串口详细调试教程

Ubuntu下的CuteCom串口详细调试教程

2024-07-12 05:38| 来源: 网络整理| 查看: 265

I.MX6ULL嵌入式开发学习——串口调试 一、Ubuntu下的串口调试助手安装

  嵌入式开发学习过程中学习到串口调试这一章,以前在Win10操作时都有相对应的串口调试界面,安装个串口驱动在电脑设备端口里面看到COM3时就可以实现串口通信。所以在乌班图系统学习串口实验时也希望能够有个串口调试界面。

1、CuteCom串口调试工具安装

   安装,首先下载这个软件,终端和软件中心均可下载,在Ubuntu软件商店直接搜索一下CuteCom这个软件就可以直接下载了,也可以通过终端输入如下命令下载。

sudo apt-get install cutecom

下载安装好后,可以通过所以软件中心搜索到图标打开(可能因没有root权限不能正常工作),所以建议终端输入利用命令行打开,输入:

sudo cutecom

打开后串口图形界面: 在这里插入图片描述

2、配置CuteCom串口调试工具

   和win一样也是需要找到相对应的串口端口,我们在实际使用的时候,大部分都用了USB转串口。也就是ttyUSB*。可以插拔一下USB转串口线,然后看看内核打印:

dmesg | grep ttyS*

在这里插入图片描述 比较前后插拔打印信息的不同找到自己对应的串口。   在嵌入式开发中,大部分都用了USB转串口。也就是ttyUSB*。但是在CuteCom中,奇怪的是device里面是找不到 ttyUSB0 这个串口,所以在这里我们需要自己手动输入添加自己的端口。如图是我自己添加我电脑的串口,波特率设置为115200。

在这里插入图片描述

如果提示Could not open /dev/ttyUSB0,这是因为 ttyUSB0的读写权限不够, 更改权限即可。

sudo chmod 666 /dev/ttyUSB0 3、调试CuteCom

  确定好后,选择Device,设置好需要通讯的设备的波特率、校验位等等,点击Open,打开串口。如果需要发送十六进制数据,界面右下角选input就行了。一切准备就绪后就可以和下位机通讯啦! 在这里插入图片描述

二、I.MX6ULL程序编写 1、UART原理篇

  UART 作为串口的一种,其工作原理也是将数据一位一位的进行传输,发送和接收各用一条线,因此通过 UART 接口与外界相连最少只需要三条线:TXD(发送)、RXD(接收)和 GND(地线)。UART 一般的接口电平有 TTL 和 RS-232,一般开发板上都有 TXD 和 RXD 这样的引脚,这些引脚低电平表示逻辑 0,高电平表示逻辑 1,这个就是 TTL 电平。RS-232 采用差分线,-3~-15V 表示逻辑 1,+3~+15V 表示逻辑 0。   空闲位:数据线在空闲状态的时候为逻辑“1”状态,也就是高电平,表示没有数据线空闲,没有数据传输。   起始位:当要传输数据的时候先传输一个逻辑“0”,也就是将数据线拉低,表示开始数据传输。   数据位:数据位就是实际要传输的数据,数据位数可选择 5~8 位,我们一般都是按照字节传输数据的,一个字节 8 位,因此数据位通常是 8 位的。低位在前,先传输,高位最后传输。   奇偶校验位:这是对数据中“1”的位数进行奇偶校验用的,可以不使用奇偶校验功能。   停止位:数据传输完成标志位,停止位的位数可以选择 1 位、1.5 位或 2 位高电平,一般都选择 1 位停止位。   波特率:波特率就是 UART 数据传输的速率,也就是每秒传输的数据位数,一般选择 9600、19200、115200 等

2、UART代码篇

  这里只讲I.MX6ULL串口这一部分。   通过寄存器UCR1编写两个开闭串口函数和软复位函数。

//关闭串口函数 void uart_disable(UART_Type *base) { base->UCR1 &= ~(1 base->UCR2 &= ~(1 uart_io_init(); //串口IO初始化 uart_disable(UART1); /* 先关闭 UART1 */ uart_softreset(UART1); //软复位 UART1->UCR1 = 0; /* 先清除 UCR1 寄存器 */ UART1->UCR1 &= ~(1 while(((UART1->USR2) &0X01) == 0);/* 等待上一次发送完成 */ return UART1->URXD; /* 接受数据 */ } //通过串口发送一串字符 void put_string(char *str) { char *p = str; while(*p) { put_char(*p++); } }

  main函数的编写验证

while(1) { // state = !state; // led_switch(LED0,state); // delay_ms(1000); put_string("wang zong gong niu bi !"); put_string("\r\n\r\n"); delay_ms(1000); a = get_char(); put_char(a); //回显功能 put_string("\r\n\r\n"); }

  下入程序验证,结果正确! 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有